package com.dxf.chepter04

/**
 * 要测试某个对象是否属于某个给定的类,可以用 inInstanceOf()
 * 将应用转为子类的引用,用 asInstanceOf()
 * 获取对象的类名  classOf()
 *
 * 1 classOf[String]       ===> java中的 String.class
 * 2 obj.inInstanceOf[T]   ===> java中 obj instanceof T 判断obj是不是T类型
 * 3 obj.asInstanceOf[T]   ===> java中 (T)obj  将obj强转为T类型
 *
 *
 */
object T57_类型检查和转换 {
  def main(args: Array[String]): Unit = {
    printLine

    val s = "zhangsan"
    println(s.getClass.getName)
    println(s.isInstanceOf[String])
    println(s.asInstanceOf[String])

    var p1 = new Student2222
    var p2 = new Person2222

    p2 = p1
    println(p2.name)
    p2.aaa
    println(p2.asInstanceOf[Student2222].age)



  }


}


class Person2222 {
  var name: String = _

  def aaa(): Unit = {
    println("Person")
  }
}

class Student2222 extends Person2222 {
  var age: Short = 12

  //override 不能省略
  override def aaa(): Unit = {
   println("Student")
  }
}






